
package com.ami.kvm.jviewer.soc.video;

public class VideoEngineInfo {
	public short iEngVersion;

	public XMS_BUFFER VideoCompressBuffer;

	public XMS_BUFFER VideoOutputBuffer;

	public VIDEO_MODE_INFO SourceModeInfo;

	public VIDEO_MODE_INFO DestinationModeInfo;

	public FRAME_HEADER FrameHeader;

	public INF_DATA INFData;

	public COMPRESS_DATA CompressData;

	public VideoEngineInfo() {
		this.VideoCompressBuffer = new XMS_BUFFER();
		this.VideoOutputBuffer = new XMS_BUFFER();
		this.SourceModeInfo = new VIDEO_MODE_INFO();
		this.DestinationModeInfo = new VIDEO_MODE_INFO();
		this.FrameHeader = new FRAME_HEADER();
		this.INFData = new INF_DATA();
		this.CompressData = new COMPRESS_DATA();
	}

	public class COMPRESS_DATA {
		public int SourceFrameSize;
		public int CompressSize;
		public int HDebug;
		public int VDebug;

		public COMPRESS_DATA() {
		}
	}

	public class INF_DATA {
		public byte DownScalingMethod;
		public byte DifferentialSetting;
		public short AnalogDifferentialThreshold;
		public short DigitalDifferentialThreshold;
		public byte ExternalSignalEnable;
		public byte AutoMode;
		public byte VQMode;

		public INF_DATA() {
		}
	}

	public class FRAME_HEADER {
		public int StartCode;
		public int FrameNumber;
		public short HSize;
		public short VSize;
		public int[] Reserved = { 0, 0 };
		public byte CompressionMode;
		public byte JPEGScaleFactor;
		public byte JPEGTableSelector;
		public byte JPEGYUVTableMapping;
		public byte SharpModeSelection;
		public byte AdvanceTableSelector;
		public byte AdvanceScaleFactor;
		public int NumberOfMB;
		public byte RC4Enable;
		public byte RC4Reset;
		public byte Mode420;

		public FRAME_HEADER() {
		}
	}

	public class VIDEO_MODE_INFO {
		public short X;
		public short Y;
		public short ColorDepth;
		public short RefreshRate;
		public byte ModeIndex;

		public VIDEO_MODE_INFO() {
		}
	}

	public class XMS_BUFFER {
		public int handle;
		public int size;
		public int physical_address;
		public int virtual_address;

		public XMS_BUFFER() {
		}
	}
}
